I have not read everything you posted, so this might not answer all your questions.
Steps 1 - 4 seem OK to me. You do not need a stream. Notes connects the objects and passes the data along the pipeline that you set up.
If you do write the data to a file for some reason, the size of the file depends on whether all the default values of all the attributes are included.
For example, here is very basic code that exports a document, changes the Subject, and imports it again (creating a new document). To add error-handling, use the Log properties of the processor objects to find out what went wrong.
' set session, db and doc
Dim dxp As NotesDXLExporter
Set dxp = session.CreateDXLExporter(doc)
Dim par As NotesDOMParser
Set par = session.CreateDOMParser(dxp)
On Event PostDOMParse From par Call ProcessDOM
Dim dip As NotesDXLImporter
Set dip = session.CreateDXLImporter(par, db)
dxp.Process
End Sub
Sub ProcessDOM(Source As NotesDOMParser)
Dim items As NotesDOMNodeList
Set items = Source.Document.GetElementsByTagName("item")
For i& = 1 To items.NumberOfEntries
Dim item As NotesDOMElementNode
Set item = items.GetItem(i&)
If item.GetAttribute("name") = "Subject" Then _
item.FirstChild.FirstChild.NodeValue = "Rhubarb"
Next
Source.Serialize
End Sub